package com.wingsoft.homeFlow.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import com.wingsoft.homeFlow.bo.HomeFlowTaskVarAddBo;
import com.wingsoft.homeFlow.bo.HomeFlowTaskVarQo;
import com.wingsoft.homeFlow.bo.HomeFlowTaskVarUptBo;
import com.wingsoft.homeFlow.bo.HomeFlowTaskVarVo;
import com.wingsoft.homeFlow.entity.HomeFlowTaskVar;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Wingsoft
 * @description 针对表【HOME_FLOW_TASK_VAR(流水线任务参数)】的数据库操作Service
 * @createDate 2025-06-03 14:53:54
 */
public interface HomeFlowTaskVarService extends IService<HomeFlowTaskVar> {

    @Transactional
    void add(HomeFlowTaskVarAddBo homeFlowTaskVarAddBo);

    @Transactional
    void addNotManualList(List<HomeFlowTaskVarAddBo> homeFlowTaskVarAddBoList);

    @Transactional
    void uptStatusById(HomeFlowTaskVarUptBo homeFlowTaskVarUptBo);

    @Transactional
    void uptGlobalFlagById(HomeFlowTaskVarUptBo homeFlowTaskVarUptBo);

    @Transactional
    void uptById(HomeFlowTaskVarUptBo homeFlowTaskVarUptBo);

    @Transactional
    void uptNotManualListById(String taskCode, String stepCode, List<HomeFlowTaskVarUptBo> homeFlowTaskVarUptBoList);

    @Transactional
    void delById(String id);

    Page<HomeFlowTaskVarVo> page(HomeFlowTaskVarQo homeFlowTaskVarQo);

    HomeFlowTaskVarVo getVoById(String id);

    List<HomeFlowTaskVarVo> listVoByTaskCode(String taskCode);

    List<HomeFlowTaskVar> listByTaskCode(String taskCode);

    List<HomeFlowTaskVar> listByTaskCodeAndStepCode(String taskCode, String stepCode);

    List<HomeFlowTaskVar> listByTaskCodeList(List<String> taskCodeList);

    @Transactional
    void updateStepCode(String taskCode, String oldStepCode, String newStepCode);

    @Transactional
    void delByStepCode(String taskCode, String stepCode);

}
